#ifndef _VN_SFML_TEXT_H_
#define _VN_SFML_TEXT_H_

#include "SFML\Graphics.hpp"
#include "SFMLDrawable.h"
#include "Text.h"

namespace vn
{
	class SFMLText : public SFMLDrawable, public vn::Text
	{
	public:
		SFMLText(float);
		virtual ~SFMLText(void);

		void setFont(const sf::Font&);

		void draw(sf::RenderWindow&);
		void draw(sf::RenderTexture&);

		void setAngle(float p_angle);
		void setScale(const vn::Scale& p_scale);
		void setScale(float x, float y);
		void setPosition(const vn::Vector2& p_position);
		void setPosition(float x, float y);
		void setOrigin(const vn::Vector2& p_origin);
		void setOrigin(float x, float y);
		void setColor(const vn::Color& p_color);
		void setString(const std::string& p_string);
		void setDoRender(bool p_value);

		const vn::Vector2 getPosition() const;
		const vn::Scale getScale() const;
		const float getAngle() const;
		const vn::Vector2 getOrigin() const;
		const vn::Color getColor() const;
		const vn::FloatRect getLocalBounds() const;

	protected:
		sf::Text m_text;
	};
}

#endif // _VN_SFML_TEXT_H_